home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / zgglse.z / zgglse
Text File  |  1996-03-14  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. ZZZZGGGGGGGGLLLLSSSSEEEE((((3333FFFF))))                                                          ZZZZGGGGGGGGLLLLSSSSEEEE((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ZGGLSE - solve the linear equality-constrained least squares (LSE)
  10.      problem
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE ZGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO )
  14.  
  15.          INTEGER        INFO, LDA, LDB, LWORK, M, N, P
  16.  
  17.          COMPLEX*16     A( LDA, * ), B( LDB, * ), C( * ), D( * ), WORK( * ),
  18.                         X( * )
  19.  
  20. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  21.      ZGGLSE solves the linear equality-constrained least squares (LSE)
  22.      problem:
  23.  
  24.              minimize || c - A*x ||_2   subject to   B*x = d
  25.  
  26.      where A is an M-by-N matrix, B is a P-by-N matrix, c is a given M-vector,
  27.      and d is a given P-vector. It is assumed that
  28.      P <= N <= M+P, and
  29.  
  30.               rank(B) = P and  rank( ( A ) ) = N.
  31.                                    ( ( B ) )
  32.  
  33.      These conditions ensure that the LSE problem has a unique solution, which
  34.      is obtained using a GRQ factorization of the matrices B and A.
  35.  
  36.  
  37. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  38.      M       (input) INTEGER
  39.              The number of rows of the matrix A.  M >= 0.
  40.  
  41.      N       (input) INTEGER
  42.              The number of columns of the matrices A and B. N >= 0.
  43.  
  44.      P       (input) INTEGER
  45.              The number of rows of the matrix B. 0 <= P <= N <= M+P.
  46.  
  47.      A       (input/output) COMPLEX*16 array, dimension (LDA,N)
  48.              On entry, the M-by-N matrix A.  On exit, A is destroyed.
  49.  
  50.      LDA     (input) INTEGER
  51.              The leading dimension of the array A. LDA >= max(1,M).
  52.  
  53.      B       (input/output) COMPLEX*16 array, dimension (LDB,N)
  54.              On entry, the P-by-N matrix B.  On exit, B is destroyed.
  55.  
  56.      LDB     (input) INTEGER
  57.              The leading dimension of the array B. LDB >= max(1,P).
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ZZZZGGGGGGGGLLLLSSSSEEEE((((3333FFFF))))                                                          ZZZZGGGGGGGGLLLLSSSSEEEE((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      C       (input/output) COMPLEX*16 array, dimension (M)
  75.              On entry, C contains the right hand side vector for the least
  76.              squares part of the LSE problem.  On exit, the residual sum of
  77.              squares for the solution is given by the sum of squares of
  78.              elements N-P+1 to M of vector C.
  79.  
  80.      D       (input/output) COMPLEX*16 array, dimension (P)
  81.              On entry, D contains the right hand side vector for the
  82.              constrained equation.  On exit, D is destroyed.
  83.  
  84.      X       (output) COMPLEX*16 array, dimension (N)
  85.              On exit, X is the solution of the LSE problem.
  86.  
  87.      WORK    (workspace/output) COMPLEX*16 array, dimension (LWORK)
  88.              On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  89.  
  90.      LWORK   (input) INTEGER
  91.              The dimension of the array WORK. LWORK >= max(1,M+N+P).  For
  92.              optimum performance LWORK >= P+min(M,N)+max(M,N)*NB, where NB is
  93.              an upper bound for the optimal blocksizes for ZGEQRF, CGERQF,
  94.              ZUNMQR and CUNMRQ.
  95.  
  96.      INFO    (output) INTEGER
  97.              = 0:  successful exit.
  98.              < 0:  if INFO = -i, the i-th argument had an illegal value.
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.